package main

import (
	"errors"
	"fmt"
)

func main() {
	var s1 string //声明字符串，默认值""
	fmt.Println(s1)

	var s2 string = "abc"
	var s3, s4 = "ab", "cd" //省略类型
	s5, s6 := "ef", "gg"    //简短声明
	fmt.Println(s1, s2, s3, s4, s5, s6)

	s1 = "ddf" //重新赋值
	fmt.Println(s1)

	var c byte = s1[0]
	fmt.Println(c) //索引字符
	//s1[0] = 'a' //go的字符串为常量，不可原地修改

	//修改字符的方法
	arr := []byte(s1) //将字符串转为字节数组
	arr[0] = 'a'      //修改字节数组
	ss := string(arr) //将字节数组转成字符串
	fmt.Printf("%s\n", ss)

	//使用+拼接字符串
	s7 := "hello"
	s8 := "world"
	s9 := s7 + s8
	fmt.Println(s9)

	//声明多行字符串
	m := `hello
		world`
	fmt.Println(m)

	//
	err := errors.New("emit macho dwarf: elf header corrupted")
	if err != nil {
		fmt.Println(err)
	}
}
